package com.ruoyi.quartz.task;

import com.ruoyi.system.service.IEpmInformationService;
import com.ruoyi.system.service.ISysConfigService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.system.domain.EpmInformation;
import com.ruoyi.common.utils.poi.ExcelUtil;

import java.io.File;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.List;

/**
 * 定时任务调度测试
 * 
 * @author ruoyi
 */
@Component("ryTask")
public class RyTask
{
    @Autowired
    private IEpmInformationService epmInformationService;


    @Autowired
    private ISysConfigService configService;

    public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
    {
        System.out.println(StringUtils.format("执行多参方法： 字符串类型{}，布尔类型{}，长整型{}，浮点型{}，整形{}", s, b, l, d, i));
    }

    public void ryParams(String params)
    {
        System.out.println("执行有参方法：" + params);
    }

    public void ryNoParams()
    {
        System.out.println("执行无参方法");
    }

//自动记录员工信息
    public void do_export_excel() {
        try {
            EpmInformation epmInformation = new EpmInformation();
            List<EpmInformation> list = epmInformationService.selectEpmInformationListbyquart(epmInformation);
            ExcelUtil<EpmInformation> util = new ExcelUtil<>(EpmInformation.class);

            // 生成文件名（年月日格式）
            String dateStr = LocalDate.now().format(DateTimeFormatter.ofPattern("yyyyMMdd"));
            String fileName = "员工信息_" + dateStr + ".xlsx";

            // 从系统参数获取相对路径
            String relativePath = configService.selectConfigByKey("excel_way");

            // 将相对路径转换为绝对路径（基于项目运行目录）
            String baseDir = System.getProperty("user.dir"); // 项目根目录（如 C:\app）
            String dirPath = new File(baseDir, relativePath).getAbsolutePath();

            File dir = new File(dirPath);
            if (!dir.exists()) {
                dir.mkdirs(); // 自动创建目录
            }
            String filePath = dirPath + File.separator + fileName;

            util.exportToFile(list, "员工数据", "员工信息", filePath);
            System.out.println("员工信息导出成功，文件路径：" + filePath);
        } catch (Exception e) {
            System.err.println("员工信息导出失败：" + e.getMessage());
            e.printStackTrace();
        }
    }

}
